﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using MJM.SCA.EntidadesNegocio;
using MJM.CBD.Conn;

namespace MJM.SCA.AccesoDatos
{
    public class IncidenciasAD
    {
        public string GetFecha(String cadena)
        { 
            return cadena.Substring(6,2) + "/" + cadena.Substring(4,2)+"/"+cadena.Substring(0,4);
        }

        public List<Incidencias> Listar(String FecInicio,String FecFin,int idDelito)
        {
            List<Incidencias> lst = new List<Incidencias>();
            SqlConnection conn = new SqlConnection(Cadena.GetCadenaObservatorio());
            SqlCommand cmd = new SqlCommand("sp_s_VISTA_RegistroIncGeneral_Listar_V3_WEB", conn);
            cmd.CommandType = CommandType.StoredProcedure;
            SqlParameter prmFechaini, prmFechaFin,prmIdDelito;
            SqlDataReader dr;
            Incidencias obj;
            try
            {
                prmFechaini = new SqlParameter();
                prmFechaini.ParameterName = "@vFecInicio";
                prmFechaini.SqlDbType = SqlDbType.VarChar;
                prmFechaini.Value = FecInicio;
                cmd.Parameters.Add(prmFechaini);
                
                prmFechaFin = new SqlParameter();
                prmFechaFin.ParameterName = "@vFecFin";
                prmFechaFin.SqlDbType = SqlDbType.VarChar;
                prmFechaFin.Value = FecFin;
                cmd.Parameters.Add(prmFechaFin);

                prmIdDelito = cmd.CreateParameter();
                prmIdDelito.ParameterName = "@vDELI_P_inID";
                prmIdDelito.SqlDbType = SqlDbType.Int;
                prmIdDelito.Value = idDelito;
                cmd.Parameters.Add(prmIdDelito);

                cmd.Connection.Open();
                dr=cmd.ExecuteReader();

                while (dr.Read())
                {
                    obj = new Incidencias();
                    obj.INC_P_inID = dr.GetInt32(0);
                    obj.INC_chFEC = GetFecha(dr.GetString(1)) + " " + dr.GetString(2);
                    obj.INC_chHOR = dr.GetString(2);
                    obj.INC_chNUMTEL = dr.GetString(3);
                    try
                    {
                        obj.SERE_chNOMCOM = dr.GetString(4);
                    }
                    catch
                    {
                        obj.SERE_chNOMCOM = "";
                    }
                    obj.INC_chDESC = dr.GetString(5);
                    obj.DIRECOMP = dr.GetString(6);
                    try
                    {
                        obj.SEC_chDESC = dr.GetString(7);
                        obj.DIRECOMP = obj.DIRECOMP + " (" + obj.SEC_chDESC + ")";
                    }
                    catch
                    {
                        obj.SEC_chDESC = "";
                    }
                    obj.DELI_chDESC = dr.GetString(8);
                    obj.SEGU_chLOGCRE = dr.GetString(9);
                    try
                    {
                        obj.INC_chARCINFO = dr.GetString(10);
                    }
                    catch
                    {
                        obj.INC_chARCINFO = "";
                    }
                    try
                    {
                        obj.FORI_chDESC = dr.GetString(11);
                    }
                    catch
                    {
                        obj.FORI_chDESC = "";
                    }
                    try
                    {
                        obj.TIPO_chDELIDESC = dr.GetString(12);
                    }
                    catch
                    {
                        obj.TIPO_chDELIDESC = "";
                    }
                    lst.Add(obj);
                }

                cmd.Connection.Close();
                cmd.Dispose();
                conn.Dispose();
            }
            catch(Exception ex)
            {
                cmd.Dispose();
                conn.Dispose();
            }

            return lst;
        }
    }
}
